﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Tibet.Logica.Excepciones;
using Tibet.Datos;
using Tibet.Logica;

namespace Tibet
{
    public class Credencial
    {


        private String _alias;
        private String _clave;
        private String _estado;




        ///<summary>
        ///Descripción: Get y Set del atributo _alias
        ///</summary>
        public String Alias
        {

            get { return _alias; }
            set { _alias = value; }

        }




        ///<summary>
        ///Descripción: Get y Set del atributo _clave
        ///</summary>
        public String Clave
        {

            get { return _clave; }
            set { _clave = value; }

        }



        ///<summary>
        ///Descripción: Get y Set del atributo _status
        ///</summary>
        public String Estado
        {

            get { return _estado; }
            set { _estado = value; }

        }


        ///<summary>
        ///Descripción: Método para pasar los parametros a la capa de datos para su posterior insercion del nuevo usuario
        ///Variable: bool:retorno
        ///</summary>
        public bool InsertarUsuario(Credencial datos, DatosUsuario datos2)
        {

            bool retorno = false;
            try
            {

                ///Consulta el alias de un usuario en BD



                AccesoCredencial accesoC = new AccesoCredencial();
                retorno = accesoC.InsertarUsuarioEnBd(datos2.Nombre, datos2.Apellido, datos2.Email, datos.Alias, datos._clave);

                return retorno;

            }
            catch (ExcepcionConexionBD AccesoBD)///Problemas con conexion a BD
            {

            }
            catch (ExcepcionQuery ErrorBD)///Error al hacer query en BD
            {

            }
            catch (ArgumentNullException ValorNulo)///Base de datos retorna valor nulo
            {

            }
            catch (Exception e)///Captura los demas errores
            {

            }

            return retorno;

        }

       
        
        
        
        
        ///<summary>
        ///Descripción: Método para verificar si existe el alias en la BD
        ///Variable: Credencial: retornoLogin
        ///</summary>
        public bool ExisteAlias(String alias)
        {

            bool retornoLogin= false;
            try
            {

                ///Consulta el alias de un usuario en BD

               
                
                AccesoCredencial accesoC = new AccesoCredencial();
                retornoLogin = accesoC.ExisteAlias(alias);
                
                return retornoLogin;

            }
            catch (ExcepcionConexionBD AccesoBD)///Problemas con conexion a BD
            {

            }
            catch (ExcepcionQuery ErrorBD)///Error al hacer query en BD
            {

            }
            catch (ArgumentNullException ValorNulo)///Base de datos retorna valor nulo
            {

            }
            catch (Exception e)///Captura los demas errores
            {

            }

            return retornoLogin;
            
        }






        ///<summary>
        ///Descripción: Método usado para validar el login de un usuario al sistema
        ///Variable: Boolean: retornoLogin
        ///Devuelve: True si el login es correcto y false si el login es incorrecto
        ///</summary>
        public Boolean ValidarLogin(Credencial login)
        {

            Boolean retornoLogin;


            AccesoCredencial accesoC = new AccesoCredencial();
            retornoLogin = accesoC.BuscarLogin(login._alias,login._clave);

            
            
            try
            {

                ///Consulta el login de un usuario en BD

            }
            catch (ExcepcionConexionBD AccesoBD)///Problemas con conexion a BD
            {

            }
            catch (ExcepcionQuery ErrorBD)///Error al hacer query en BD
            {

            }
            catch (ArgumentNullException ValorNulo)///Base de datos retorna valor nulo
            {

            }
            catch (Exception e)///Captura los demas errores
            {

            }
            
            return retornoLogin;

        }





        ///<summary>
        ///Descripción: Método para verificar en BD si un usuario esta activo o inactivo en el sistema
        ///Variable: Boolean: retornoStatus
        ///Devuelve: True si el estado es activo y false si el estado es inactivo
        ///</summary>
        public Boolean VerificarEstadoUsuario(Credencial login)
        {

            Boolean retornoStatus = false;

            try
            {

                ///Verifica en BD el estado del usuario

            }
            catch (ExcepcionConexionBD AccesoBD)///Problemas con conexion a BD
            {

            }
            catch (ExcepcionQuery ErrorBD)///Error al hacer query en BD
            {

            }
            catch (ArgumentNullException ValorNulo)///Base de datos retorna valor nulo
            {

            }
            catch (Exception e)///Captura los demas errores
            {

            }

            return retornoStatus;

        }





        ///<summary>
        ///Descripción: Método para recuperar la clave
        ///Variable: Boolean: retornoRecordarClave
        ///Devuelve: True si recupero y en caso contrario false
        ///</summary>
        public Boolean RecordarClave(String email)
        {

            Boolean retornoRecordarClave = false;

            try
            {

                ///

            }
            catch (ExcepcionConexionBD AccesoBD)///Problemas con conexion a BD
            {

            }
            catch (ExcepcionQuery ErrorBD)///Error al hacer query en BD
            {

            }
            catch (ArgumentNullException ValorNulo)///Base de datos retorna valor nulo
            {

            }
            catch (Exception e)///Captura los demas errores
            {

            }

            return retornoRecordarClave;

        }


    }
}